package dados.aluno;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import negocio.aluno.Aluno;
import negocio.aluno.ListaAlunos;
import negocio.cliente.Cliente;

import dados.ArquivoInexistenteException;
import dados.CamadaDeDadosException;
import dados.ClienteNaoExistenteException;

public class RepositorioAlunosArquivo {

	private static final int MAX_ARRAY_CLIENTES = 1000;
	private String nomeArquivo;
	private File arquivo;
	private int indice;
	
	public RepositorioAlunosArquivo(String arq) throws CamadaDeDadosException, ArquivoInexistenteException{
		try {
			nomeArquivo = arq;
			arquivo = new File(nomeArquivo);
			
			
			if (!arquivo.exists()) {
				arquivo.createNewFile();
				throw new ArquivoInexistenteException();
			}

		} catch (IOException ex) {
			throw new CamadaDeDadosException(ex.getMessage());
		}
	}
	
	public void salvar(Aluno a) throws CamadaDeDadosException  {
        try {		
			FileWriter fout = new FileWriter(nomeArquivo,true);
			BufferedWriter bw = new BufferedWriter(fout);
			bw.write(a.getCpf()+"\n");
			bw.write(a.getNome()+"\n");
			bw.close();
        } catch (IOException e) {
        	throw new CamadaDeDadosException(e.getMessage());
        }
	}
	
	public ListaAlunos listarAlunosArquivo() throws CamadaDeDadosException {
		ListaAlunos listaAlunos;
		FileReader fr;
		try {
			fr = new FileReader(arquivo);
			BufferedReader br = new BufferedReader(fr);
			String linha = br.readLine();
			while (linha != null) {
				Aluno a = null;
				String nome = br.readLine();
				String endereco= br.readLine();
				String telefone= br.readLine();
				String sIdade = br.readLine();
				int idade = Integer.parseInt(sIdade);
				a = new Aluno (nome, endereco, telefone, idade);
				listaAlunos.insert(a);
				linha = br.readLine();
			}
			br.close();
		} catch (IOException e) {
			throw new CamadaDeDadosException(e.getMessage());
		}

		return listaAlunos;

	}
}
